package com.javabase.shuzu.Array;

public class ArrayAssign {
    public static void main(String[] args) {

        //基本数据类型赋值，赋值方式为值拷贝
        //n2的变化，不会影响到n1的值
        int n1 = 10;
        int n2 = n1;

        n2 = 80;
        System.out.println("n1=" + n1); //10
        System.out.println("n2=" + n2); //80
        //n1不会变 值传递=值拷贝 在栈

        //jvm内存分为三部分： 1.栈 2.堆 3.方法区
        //引用数据类型起点是栈  存储（拷贝到）的是堆地址（固定的）能被所有数组访问 arr1,arr2...
        // 所以值会被覆盖
        //地址就像打开堆区域的钥匙！
        //数组在默认情况下是引用传递，赋给堆地址，赋值方式是引用传递
        //是一个地址列如
        int[] arr1 = {1, 2, 3};
        int[] arr2 = arr1;
                //把arr1赋给arr2
        arr2[0] = 10;
//修改arr2【0】的之后再看看arr1的变化
        for (int i = 0; i <arr1.length ; i++) {
            System.out.print(arr1[i] + " ");
            //arr1[0]=10=arr2[0]
        }
     }
}
